Data is segmented into packets for transmission on a network/communication channel. In order to improve reliability of data transmission, it is generally required to provide error correction mechanism using network protocol or coding. For example, when data is transmitted over Internet, error detection retransmission mechanism provided by Transmission Control Protocol (TCP) is required to be used to transmit the data reliably, that is, notify a transmitter to make a retransmission when packet loss is detected.
However, when data is transmitted in a multimedia broadcast channel, because a one-way channel is used and the data is transmitted in a one-to-many broadcast/multicast mode, a receiver is not allowed to feed back packet loss and error information to a transmitter such that the error detection retransmission mechanism can not be used. In such case, a packet is required to be forward error correction (FEC)-coded before sent. The classical application layer FEC includes Reed-Solomon (RS) codes and digital Fountain codes. The RS codes are of higher coding and decoding complexity so as merely to be applied to shorter code length typically. Luby Transform (LT) codes and Raptor codes are two types of practically applicable digital Fountain codes. The LT codes have linear coding and decoding time, which is an essential improvement in relation to the RS codes; while the Raptor codes have higher decoding efficiency due to the use of pre-coding technology. Both multimedia broadcast/multicast service (MBMS) and digital video broadcasting (DVB) in the 3rd Generation Partnership Project (3GPP) use the Raptor codes of the Digital Fountain Company as their FEC coding scheme.
If the first K bits of a coded code word are the same as information bits, then the code is called a system code. The coding process is a process in which a N-bit code length is formed from K information bits, and the purpose of error detection and error correction is achieved by adding N-K check bits. The LT codes do not support the coding mode of system codes, thus, it is difficult to satisfy certain actual FEC coding requirements; the Raptor codes support the system codes, but they need a separate pre-coding process, i.e., a pre-coding matrix, thus, the coding complexity is pretty high.
Low density generator matrix code (LDGC) is introduced due to disadvantages of the above coding mode. The LDGC is a linear packet code and non-zero elements in its generator matrix (coding matrix) are usually sparse; meanwhile, the LDGC is a system code.
FIG. 1 is a schematic diagram of a generator matrix of the LDGC. As shown in FIG. 1, a square matrix corresponding to the first L rows in the generator matrix Gldgc of the LDGC is typically an upper or lower triangular matrix, inversion of which may be done with an iterative method, where, x and y in FIG. 1 may be 0.
FIG. 2 is a schematic diagram of performing a corresponding erase operation on the generator matrix of the LDGC based on erase situation of the received code word when decoded.
As shown in FIG. 2, if errors occur when data is transmitted (i.e., the data is erased), a receiver performs the corresponding erase operation on the generator matrix Gldgc before using Gldgc to decode. That is, assuming that symbols {ri, ri+1, . . . , ri+X1} and {rj, rj+1, . . . , rj+X2} in a sequence R (r0, r1, . . . rN−1) with a length of N bits are erased by a channel, then rows {i, i+1, . . . i+X1} and {j, j+1, . . . j+X2} in Gldgc are also required to be erased to obtain an erase generator matrix Ge. It is noted that Ge is same for the same data loss/error situation.
In prior art, when data is transmitted using the FEC coding and decoding mode, such as LDGC, a transmitter FEC-codes packets, and a receiver generates a corresponding erase generator matrix Ge according to transmission situation for each packet and decodes the packet using Ge. The efficiency of such data transmission method is rather low, and decoding cannot be performed effectively when there are too many erroneous data in the packet such that the entire packet has to be discarded, thereby decreasing greatly the transmission efficiency of the data when network/channel works poorly.